#ifndef MANGOSSERVER_VEHICLE_H
#define MANGOSSERVER_VEHICLE_H

#include "Common.h"
#include "ObjectGuid.h"
#include "Creature.h"
#include "Unit.h"
#include "SharedDefines.h"

class Vehicle : public Creature
{
public:
    explicit				Vehicle();
    virtual					~Vehicle();

public:///
    void					AddToWorld();
    void					RemoveFromWorld();


    bool					Create(uint32 guidlow, CreatureCreatePos& cPos, uint32 Entry, uint32 vehicleId, Team team);

    void					SetDeathState(DeathState s);                   // overwrite virtual Creature::SetDeathState and Unit::SetDeathState
    void					Update(uint32 update_diff, uint32 diff);                           // overwrite virtual Creature::Update and Unit::Update

    uint32					GetVehicleId() { return m_vehicleId; }
    void					SetVehicleId(uint32 vehicleid) { m_vehicleId = vehicleid; }

    void					Dismiss();

protected:
    uint32					m_vehicleId;

private:
    void					SaveToDB(uint32, uint8, uint32)                // overwrited of Creature::SaveToDB     - don't must be called
    {
        MANGOS_ASSERT(false);
    }
    void					DeleteFromDB()                                 // overwrited of Creature::DeleteFromDB - don't must be called
    {
        MANGOS_ASSERT(false);
    }
};
#endif
